package com.zry.simpleBlog.comment.enums;

import com.zry.simpleBlog.comment.exception.BusinessException;
import lombok.AllArgsConstructor;
import lombok.Getter;

import java.util.Arrays;

/**
 * 鉴权枚举
 * 定义该操作所需用户最低的权限等级
 */
@Getter
@AllArgsConstructor
public enum RoleEnum {
    /**
     * admin 最高权限用户，拥有所有权限
     */
    GOD(1, "ADMIN"),
    /**
     * user 无更新，删除权限 ,无查看别人未发布的文章权限
     */
    USER(2, "BLOG_USER"),
    /**
     * 只有前台浏览，评论权限
     */
    VISITOR(3, "VISITOR");
    /**
     * 用户权限等级
     */
    private final Integer rank;
    private final String type;

    public static RoleEnum getRoleEnumByRank(Integer rank) {
        return Arrays.stream(RoleEnum.values()).filter(item -> item.rank.equals(rank)).findAny()
                .orElseThrow(() ->  new BusinessException(RespBeanEnum.AUTH_ERROR));
    }
}
